package com.yuandian.business.monitor.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.business_monitor.po.SystemOverviewParams;
import com.yuandian.api.business_monitor.vo.AppSystemVo;
import com.yuandian.api.business_monitor.vo.SystemOverviewVo;
import com.yuandian.bpm.common.core.util.R;
import com.yuandian.utils.PageDataInfo;
import com.yuandian.vo.TrendDataVo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;

/**
 * 说明：应用系统service接口
 *
 * @Author yanjun
 * @Date 2020/9/11 16:35
 */
public interface IAppSystemService {

    /**
     * 查询应用系统列表
     *
     * @param appSystemVo 应用系统vo对象
     * @param page        分页参数
     * @return 通用分页对象
     */
    PageDataInfo appSystemList(AppSystemVo appSystemVo, Page<AppSystemVo> page);

    /**
     * 查询关键系统TOP5
     *
     * @return 应用系统vo对象集合
     */
	R queryKeySystemTop5();


    /**
     * 系统健康度,平均处理时长,告警请求量趋势图
     *
     * @param params
     * @return
     */
	TrendDataVo systemTrendList(SystemOverviewParams params);

    /**
     * 下载全系统总览
     *
     * @param params
     * @return
     */
    void downloadSystemOverview(SystemOverviewParams params, HttpServletResponse response) throws IOException;

    /**
     * 全系统总览列表
     * @param params
     * @return
     */
	PageDataInfo querySystemOverview(SystemOverviewParams params);

    /**
     * 全系统统计详情
     * @param params
     * @return
     */
	List<SystemOverviewVo> querySystemStatisticsDetail(SystemOverviewParams params);

    /**
     * 查询用户数
     *
     * @param params
     * @return
     */
	HashMap<String, Integer> queryUserNum(SystemOverviewParams params);

    /**
     * 查询异常用户数
     *
     * @param params
     * @return
     */
	HashMap<String, Integer> queryExceptionUserNum(SystemOverviewParams params);

}
